
#ifndef  UTIL_H
#define  UTIL_H

#include <cassert>
#include <iostream>

namespace util {

class Task {
public: 
    virtual ~Task() {}
    virtual void run() = 0;

    void assertTrue(bool value){
        assert(value);
    }
    void assertFalse(bool value){
        assert(!value);
    }
    template<typename T>
    void assertEq(const T & left, const T & right){
        assert(left == right);
    }
};

class  TwoDimensionalArray {
public:
    static void print(const int *data, const int row, const int column);
};
} // end of namespace util
#endif   /* UTIL_H */
